/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jogopoo.Efeitos;

import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics2D;
import jogopoo.Grafico.GrafCenario;

/**
 *Classe de metodos estaticos para fazer efeitos de tela
 * @author user
 */
public class EfeitosTela {

    /**
     * Metodo para fazer a tela tremer
     * @param cenario
     * @param s
     */
    public void tremer(GrafCenario cenario, int s) {

        int tx = 0, ty = 0;

        if (cenario.getTreme()) {
            ty = (int) (cenario.getTremeStrong() * (Math.sin(w * 15)));
            tx = (int) (cenario.getTremeStrong() * (Math.cos(w * 15)));
            for (int i = 0; i < cenario.getListaAliens().size(); ++i) {
                cenario.getListaAliens().get(i).incrPosicao(tx, ty);
            }
            for (int i = 0; i < cenario.getListaPlaneta().size(); ++i) {
                cenario.getListaPlaneta().get(i).incrPosicao(tx, ty);
                for (int j = 0; j < cenario.getListaPlaneta().get(i).getListaElipses().size();
                        ++j) {

                    double raio = cenario.getListaPlaneta().get(i).getListaElipses().get(j).getWidth() / 2;
                    cenario.getListaPlaneta().get(i).getListaElipses().get(j).setFrame(
                            cenario.getListaPlaneta().get(i).getListaElipses().get(j).getX() + tx,
                            cenario.getListaPlaneta().get(i).getListaElipses().get(j).getY() + ty,
                            2 * raio, 2 * raio);
                }
            }
            for (int i = 0; i < cenario.getListaRaios().size(); ++i) {
                cenario.getListaRaios().get(i).incrPosicao(tx, ty);
            }
            cenario.getPlayer().incrPosicao(tx, ty);
            cenario.getBarraInfo().incrPosicao(tx, ty);

            w += Math.toRadians(10);
            if (w >= Math.toRadians(359)) {
                cenario.setTreme(false);
                w = 0;
                cenario.getPlayer().setPosicao(cenario.getPlayer().getPosicao().x, 571);
            }
        }
    }

    public static void branquearTela(Graphics2D cena2) {
        cena2.setColor(Color.white);

        if (EfeitosTela.alpha < 0) {
            EfeitosTela.alpha = 0;
        }
        cena2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));

        cena2.fillRect(0, 0, 960, 720);

        if (EfeitosTela.alpha > 0.01f) {
            EfeitosTela.alpha += -0.03f;
        }
    }

    public static void setAlpha(float alpha) {
        EfeitosTela.alpha = alpha;
    }
    private double w = 0;
    private static float alpha;
}
